/*
*---------------------------------------------------------------
*                        Lvgl Font Tool                         
*                                                               
* 注:使用unicode编码                                              
* 注:本字体文件由Lvgl Font Tool V0.4 生成                          
* 作者:阿里(qq:617622104)                                         
*---------------------------------------------------------------
*/


#include "lvgl.h"


static const uint8_t glyph_bitmap[] = {
/* A */
0x00,0x00,0x00,0x03,0x33,0x00,0x00,0x00,0x00,  //.................
0x00,0x00,0x00,0x5e,0xfe,0x50,0x00,0x00,0x00,  //......+@@@+......
0x00,0x00,0x00,0xcf,0xff,0xa0,0x00,0x00,0x00,  //......%@@@%......
0x00,0x00,0x03,0xef,0xcf,0xe0,0x00,0x00,0x00,  //......@@%@@......
0x00,0x00,0x08,0xee,0xaf,0xe5,0x00,0x00,0x00,  //.....+@@%@@+.....
0x00,0x00,0x0e,0xfe,0x3e,0xfc,0x00,0x00,0x00,  //.....@@@.@@%.....
0x00,0x00,0x5e,0xfa,0x0c,0xfe,0x30,0x00,0x00,  //....+@@%.%@@.....
0x00,0x00,0xaf,0xe5,0x08,0xee,0x80,0x00,0x00,  //....%@@+.+@@+....
0x00,0x00,0xef,0xe0,0x03,0xef,0xe0,0x00,0x00,  //....@@@...@@@....
0x00,0x08,0xee,0x80,0x00,0xcf,0xe5,0x00,0x00,  //...+@@+...%@@+...
0x00,0x0c,0xfe,0x30,0x00,0x8e,0xfa,0x00,0x00,  //...%@@....+@@%...
0x00,0x3e,0xfc,0x00,0x00,0x0e,0xfe,0x30,0x00,  //...@@%.....@@@...
0x00,0xaf,0xff,0xff,0xff,0xff,0xfe,0x80,0x00,  //..%@@@@@@@@@@@+..
0x00,0xef,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,  //..@@@@@@@@@@@@%..
0x05,0xef,0xc0,0x00,0x00,0x00,0xef,0xe3,0x00,  //.+@@%.......@@@..
0x0a,0xfe,0x80,0x00,0x00,0x00,0xaf,0xfa,0x00,  //.%@@+.......%@@%.
0x3e,0xfe,0x00,0x00,0x00,0x00,0x3e,0xfe,0x00,  //.@@@.........@@@.
0x8e,0xfa,0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.........%@@+
0xcf,0xe5,0x00,0x00,0x00,0x00,0x08,0xef,0xc0,  //%@@+.........+@@%


/* C */
0x00,0x00,0x00,0x00,0x56,0x66,0x53,0x00,  //........+++++...
0x00,0x00,0x05,0xcf,0xff,0xff,0xff,0xe3,  //.....+%@@@@@@@@.
0x00,0x00,0xae,0xff,0xec,0xac,0xef,0xe3,  //....%@@@@%%%@@@.
0x00,0x0c,0xff,0xe5,0x00,0x00,0x03,0x63,  //...%@@@+......+.
0x00,0xaf,0xfe,0x30,0x00,0x00,0x00,0x00,  //..%@@@..........
0x03,0xef,0xe3,0x00,0x00,0x00,0x00,0x00,  //..@@@...........
0x08,0xef,0xa0,0x00,0x00,0x00,0x00,0x00,  //.+@@%...........
0x0c,0xfe,0x50,0x00,0x00,0x00,0x00,0x00,  //.%@@+...........
0x0e,0xfe,0x30,0x00,0x00,0x00,0x00,0x00,  //.@@@............
0x3e,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,  //.@@@............
0x3e,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,  //.@@@............
0x3e,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,  //.@@@............
0x0e,0xfe,0x50,0x00,0x00,0x00,0x00,0x00,  //.@@@+...........
0x0a,0xff,0xa0,0x00,0x00,0x00,0x00,0x00,  //.%@@%...........
0x05,0xef,0xe3,0x00,0x00,0x00,0x00,0x00,  //.+@@@...........
0x00,0xcf,0xfc,0x00,0x00,0x00,0x00,0x00,  //..%@@%..........
0x00,0x3e,0xff,0xe5,0x00,0x00,0x08,0xa3,  //...@@@@+.....+%.
0x00,0x03,0xcf,0xff,0xfc,0xce,0xff,0xe3,  //....%@@@@%%@@@@.
0x00,0x00,0x08,0xef,0xff,0xff,0xfe,0x80,  //.....+@@@@@@@@+.
0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,  //................


/* E */
0x00,0x33,0x33,0x33,0x33,0x33,0x00,  //.............
0x00,0xef,0xff,0xff,0xff,0xfe,0x00,  //..@@@@@@@@@@.
0x00,0xef,0xff,0xff,0xff,0xfe,0x00,  //..@@@@@@@@@@.
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe3,0x33,0x33,0x30,0x00,  //..@@@........
0x00,0xef,0xff,0xff,0xff,0xe8,0x00,  //..@@@@@@@@@+.
0x00,0xef,0xfc,0xcc,0xcc,0xc8,0x00,  //..@@@%%%%%%+.
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,  //..@@@........
0x00,0xef,0xff,0xff,0xff,0xfe,0x80,  //..@@@@@@@@@@+
0x00,0xef,0xff,0xff,0xff,0xfe,0x80,  //..@@@@@@@@@@+


/* G */
0x00,0x00,0x00,0x00,0x36,0x66,0x53,0x00,0x00,  //.........++++.....
0x00,0x00,0x05,0xcf,0xff,0xff,0xff,0xec,0x00,  //.....+%@@@@@@@@%..
0x00,0x00,0xae,0xff,0xec,0xac,0xef,0xfe,0x00,  //....%@@@@%%%@@@@..
0x00,0x0a,0xff,0xe5,0x00,0x00,0x03,0xac,0x00,  //...%@@@+......%%..
0x00,0x8e,0xfe,0x30,0x00,0x00,0x00,0x00,0x00,  //..+@@@............
0x03,0xef,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,  //..@@@.............
0x08,0xef,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,  //.+@@%.............
0x0c,0xfe,0x50,0x00,0x00,0x00,0x00,0x00,0x00,  //.%@@+.............
0x0e,0xfe,0x30,0x00,0x00,0x00,0x00,0x00,0x00,  //.@@@..............
0x3e,0xfe,0x00,0x00,0x05,0xaa,0xaa,0xaa,0x30,  //.@@@.....+%%%%%%..
0x3e,0xfe,0x00,0x00,0x08,0xef,0xff,0xfe,0x50,  //.@@@.....+@@@@@@+.
0x3e,0xfe,0x00,0x00,0x05,0xaa,0xac,0xfe,0x50,  //.@@@.....+%%%%@@+.
0x0e,0xfe,0x50,0x00,0x00,0x00,0x0a,0xfe,0x50,  //.@@@+........%@@+.
0x0a,0xff,0xa0,0x00,0x00,0x00,0x0a,0xfe,0x50,  //.%@@%........%@@+.
0x05,0xef,0xe3,0x00,0x00,0x00,0x0a,0xfe,0x50,  //.+@@@........%@@+.
0x00,0xcf,0xfc,0x00,0x00,0x00,0x0a,0xfe,0x50,  //..%@@%.......%@@+.
0x00,0x0e,0xff,0xe5,0x00,0x00,0x3c,0xfe,0x50,  //...@@@@+.....%@@+.
0x00,0x03,0xcf,0xff,0xfc,0xce,0xff,0xfe,0x50,  //....%@@@@%%@@@@@+.
0x00,0x00,0x05,0xcf,0xff,0xff,0xfe,0xa3,0x00,  //.....+%@@@@@@@%...
0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x00,  //..................


/* M */
0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,  //.......................
0x00,0xef,0xfe,0x30,0x00,0x00,0x00,0x00,0x08,0xef,0xe8,0x00,  //..@@@@...........+@@@+.
0x00,0xef,0xfe,0x80,0x00,0x00,0x00,0x00,0x0e,0xff,0xe8,0x00,  //..@@@@+..........@@@@+.
0x00,0xef,0xff,0xe0,0x00,0x00,0x00,0x00,0x8e,0xff,0xe8,0x00,  //..@@@@@.........+@@@@+.
0x00,0xef,0xce,0xe8,0x00,0x00,0x00,0x00,0xcf,0xee,0xe8,0x00,  //..@@%@@+........%@@@@+.
0x00,0xef,0xce,0xfc,0x00,0x00,0x00,0x05,0xee,0x8e,0xe8,0x00,  //..@@%@@%.......+@@+@@+.
0x00,0xef,0xca,0xfe,0x50,0x00,0x00,0x0a,0xfe,0x8e,0xe8,0x00,  //..@@%%@@+......%@@+@@+.
0x00,0xef,0xc5,0xef,0xa0,0x00,0x00,0x3e,0xfa,0x8e,0xe8,0x00,  //..@@%+@@%......@@%+@@+.
0x00,0xef,0xc0,0xcf,0xe3,0x00,0x00,0xaf,0xe5,0x8e,0xe8,0x00,  //..@@%.%@@.....%@@++@@+.
0x00,0xef,0xc0,0x8e,0xe8,0x00,0x00,0xef,0xc0,0x8e,0xe8,0x00,  //..@@%.+@@+....@@%.+@@+.
0x00,0xef,0xc0,0x0e,0xfe,0x00,0x08,0xee,0x50,0x8e,0xe8,0x00,  //..@@%..@@@...+@@+.+@@+.
0x00,0xef,0xc0,0x08,0xee,0x80,0x0e,0xfe,0x00,0x8e,0xe8,0x00,  //..@@%..+@@+..@@@..+@@+.
0x00,0xef,0xc0,0x03,0xef,0xc0,0x5e,0xe8,0x00,0x8e,0xe8,0x00,  //..@@%...@@%.+@@+..+@@+.
0x00,0xef,0xc0,0x00,0xaf,0xe5,0xcf,0xe3,0x00,0x8e,0xe8,0x00,  //..@@%...%@@+%@@...+@@+.
0x00,0xef,0xc0,0x00,0x5e,0xfa,0xef,0xa0,0x00,0x8e,0xe8,0x00,  //..@@%...+@@%@@%...+@@+.
0x00,0xef,0xc0,0x00,0x0c,0xfe,0xee,0x30,0x00,0x8e,0xe8,0x00,  //..@@%....%@@@@....+@@+.
0x00,0xef,0xc0,0x00,0x05,0xef,0xfc,0x00,0x00,0x8e,0xe8,0x00,  //..@@%....+@@@%....+@@+.
0x00,0xef,0xc0,0x00,0x00,0xef,0xe5,0x00,0x00,0x8e,0xe8,0x00,  //..@@%.....@@@+....+@@+.
0x00,0xef,0xc0,0x00,0x00,0x8e,0xc0,0x00,0x00,0x8e,0xe8,0x00,  //..@@%.....+@%.....+@@+.


/* N */
0x00,0x33,0x30,0x00,0x00,0x00,0x00,0x03,0x30,0x00,  //....................
0x00,0xef,0xfe,0x00,0x00,0x00,0x00,0x8e,0xe8,0x00,  //..@@@@........+@@+..
0x00,0xef,0xff,0xa0,0x00,0x00,0x00,0x8e,0xe8,0x00,  //..@@@@%.......+@@+..
0x00,0xef,0xff,0xe5,0x00,0x00,0x00,0x8e,0xe8,0x00,  //..@@@@@+......+@@+..
0x00,0xef,0xee,0xfe,0x00,0x00,0x00,0x8e,0xe8,0x00,  //..@@@@@@......+@@+..
0x00,0xef,0xea,0xff,0xa0,0x00,0x00,0x8e,0xe8,0x00,  //..@@@%@@%.....+@@+..
0x00,0xef,0xe0,0xef,0xe3,0x00,0x00,0x8e,0xe8,0x00,  //..@@@.@@@.....+@@+..
0x00,0xef,0xe0,0x5e,0xfc,0x00,0x00,0x8e,0xe8,0x00,  //..@@@.+@@%....+@@+..
0x00,0xef,0xe0,0x0a,0xfe,0x80,0x00,0x8e,0xe8,0x00,  //..@@@..%@@+...+@@+..
0x00,0xef,0xe0,0x00,0xef,0xe3,0x00,0x8e,0xe8,0x00,  //..@@@...@@@...+@@+..
0x00,0xef,0xe0,0x00,0x8e,0xfc,0x00,0x8e,0xe8,0x00,  //..@@@...+@@%..+@@+..
0x00,0xef,0xe0,0x00,0x0c,0xfe,0x80,0x8e,0xe8,0x00,  //..@@@....%@@+.+@@+..
0x00,0xef,0xe0,0x00,0x03,0xef,0xe3,0x8e,0xe8,0x00,  //..@@@.....@@@.+@@+..
0x00,0xef,0xe0,0x00,0x00,0x8e,0xfa,0x8e,0xe8,0x00,  //..@@@.....+@@%+@@+..
0x00,0xef,0xe0,0x00,0x00,0x0c,0xfe,0x8e,0xe8,0x00,  //..@@@......%@@+@@+..
0x00,0xef,0xe0,0x00,0x00,0x03,0xef,0xee,0xe8,0x00,  //..@@@.......@@@@@+..
0x00,0xef,0xe0,0x00,0x00,0x00,0x8e,0xff,0xe8,0x00,  //..@@@.......+@@@@+..
0x00,0xef,0xe0,0x00,0x00,0x00,0x0c,0xff,0xe8,0x00,  //..@@@........%@@@+..
0x00,0xef,0xe0,0x00,0x00,0x00,0x05,0xef,0xe8,0x00,  //..@@@........+@@@+..


/* P */
0x00,0x33,0x33,0x33,0x30,0x00,0x00,0x00,  //...............
0x00,0xef,0xff,0xff,0xff,0xc5,0x00,0x00,  //..@@@@@@@@%+...
0x00,0xef,0xff,0xff,0xff,0xfe,0xa0,0x00,  //..@@@@@@@@@@%..
0x00,0xef,0xe0,0x00,0x08,0xef,0xe5,0x00,  //..@@@....+@@@+.
0x00,0xef,0xe0,0x00,0x00,0x8e,0xfc,0x00,  //..@@@.....+@@%.
0x00,0xef,0xe0,0x00,0x00,0x3e,0xfe,0x00,  //..@@@......@@@.
0x00,0xef,0xe0,0x00,0x00,0x3e,0xfe,0x00,  //..@@@......@@@.
0x00,0xef,0xe0,0x00,0x00,0x3e,0xfe,0x00,  //..@@@......@@@.
0x00,0xef,0xe0,0x00,0x00,0xaf,0xfa,0x00,  //..@@@.....%@@%.
0x00,0xef,0xe0,0x00,0x0a,0xef,0xe3,0x00,  //..@@@....%@@@..
0x00,0xef,0xfc,0xce,0xff,0xfe,0x50,0x00,  //..@@@%%@@@@@+..
0x00,0xef,0xff,0xff,0xfe,0xa3,0x00,0x00,  //..@@@@@@@@%....
0x00,0xef,0xe3,0x33,0x30,0x00,0x00,0x00,  //..@@@..........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,0x00,  //..@@@..........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,0x00,  //..@@@..........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,0x00,  //..@@@..........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,0x00,  //..@@@..........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,0x00,  //..@@@..........
0x00,0xef,0xe0,0x00,0x00,0x00,0x00,0x00,  //..@@@..........


/* R */
0x00,0x33,0x33,0x33,0x30,0x00,0x00,0x00,  //................
0x00,0xef,0xff,0xff,0xff,0xe8,0x00,0x00,  //..@@@@@@@@@+....
0x00,0xef,0xfc,0xce,0xff,0xff,0xc0,0x00,  //..@@@%%@@@@@%...
0x00,0xef,0xe0,0x00,0x08,0xef,0xe8,0x00,  //..@@@....+@@@+..
0x00,0xef,0xe0,0x00,0x00,0x8e,0xfa,0x00,  //..@@@.....+@@%..
0x00,0xef,0xe0,0x00,0x00,0x5e,0xfc,0x00,  //..@@@.....+@@%..
0x00,0xef,0xe0,0x00,0x00,0x5e,0xfc,0x00,  //..@@@.....+@@%..
0x00,0xef,0xe0,0x00,0x00,0xaf,0xfa,0x00,  //..@@@.....%@@%..
0x00,0xef,0xe0,0x00,0x05,0xef,0xe3,0x00,  //..@@@....+@@@...
0x00,0xef,0xea,0xac,0xef,0xfc,0x30,0x00,  //..@@@%%%@@@%....
0x00,0xef,0xff,0xff,0xfe,0x50,0x00,0x00,  //..@@@@@@@@+.....
0x00,0xef,0xe6,0x6c,0xef,0xe3,0x00,0x00,  //..@@@++%@@@.....
0x00,0xef,0xe0,0x00,0x8e,0xfc,0x00,0x00,  //..@@@...+@@%....
0x00,0xef,0xe0,0x00,0x0c,0xfe,0x80,0x00,  //..@@@....%@@+...
0x00,0xef,0xe0,0x00,0x03,0xef,0xe3,0x00,  //..@@@.....@@@...
0x00,0xef,0xe0,0x00,0x00,0xaf,0xfa,0x00,  //..@@@.....%@@%..
0x00,0xef,0xe0,0x00,0x00,0x0e,0xfe,0x50,  //..@@@......@@@+.
0x00,0xef,0xe0,0x00,0x00,0x05,0xef,0xe0,  //..@@@......+@@@.
0x00,0xef,0xe0,0x00,0x00,0x00,0xcf,0xfa,  //..@@@.......%@@%


/* T */
0x33,0x33,0x33,0x33,0x33,0x33,0x30,  //..............
0xcf,0xff,0xff,0xff,0xff,0xff,0xfa,  //%@@@@@@@@@@@@%
0xcf,0xff,0xff,0xff,0xff,0xff,0xfa,  //%@@@@@@@@@@@@%
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....
0x00,0x00,0x0a,0xfe,0x50,0x00,0x00,  //.....%@@+.....


/* U */
0x00,0x33,0x30,0x00,0x00,0x00,0x03,0x33,0x00,  //..................
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xc0,0x00,0x00,0x00,0x0c,0xfe,0x30,  //..@@%........%@@..
0x03,0xef,0xe0,0x00,0x00,0x00,0x0e,0xfe,0x00,  //..@@@........@@@..
0x00,0xef,0xe3,0x00,0x00,0x00,0x3e,0xfc,0x00,  //..@@@........@@%..
0x00,0xaf,0xfa,0x00,0x00,0x00,0xaf,0xe8,0x00,  //..%@@%......%@@+..
0x00,0x3e,0xfe,0xa0,0x00,0x0a,0xef,0xe0,0x00,  //...@@@%....%@@@...
0x00,0x08,0xef,0xff,0xcc,0xff,0xfe,0x50,0x00,  //...+@@@@%%@@@@+...
0x00,0x00,0x5c,0xff,0xff,0xfe,0xc3,0x00,0x00,  //....+%@@@@@@%.....
0x00,0x00,0x00,0x03,0x33,0x30,0x00,0x00,0x00,  //..................

};


static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
    {.bitmap_index = 0,	.adv_w = 17, .box_h = 19, .box_w = 18, .ofs_x = 0, .ofs_y = 6},/*(A)*/
    {.bitmap_index = 171,	.adv_w = 16, .box_h = 20, .box_w = 16, .ofs_x = 0, .ofs_y = 5},/*(C)*/
    {.bitmap_index = 331,	.adv_w = 13, .box_h = 19, .box_w = 14, .ofs_x = 0, .ofs_y = 6},/*(E)*/
    {.bitmap_index = 464,	.adv_w = 18, .box_h = 20, .box_w = 18, .ofs_x = 0, .ofs_y = 5},/*(G)*/
    {.bitmap_index = 644,	.adv_w = 23, .box_h = 19, .box_w = 24, .ofs_x = 0, .ofs_y = 6},/*(M)*/
    {.bitmap_index = 872,	.adv_w = 20, .box_h = 19, .box_w = 20, .ofs_x = 0, .ofs_y = 6},/*(N)*/
    {.bitmap_index = 1062,	.adv_w = 15, .box_h = 19, .box_w = 16, .ofs_x = 0, .ofs_y = 6},/*(P)*/
    {.bitmap_index = 1214,	.adv_w = 16, .box_h = 19, .box_w = 16, .ofs_x = 0, .ofs_y = 6},/*(R)*/
    {.bitmap_index = 1366,	.adv_w = 14, .box_h = 19, .box_w = 14, .ofs_x = 0, .ofs_y = 6},/*(T)*/
    {.bitmap_index = 1499,	.adv_w = 18, .box_h = 20, .box_w = 18, .ofs_x = 0, .ofs_y = 5},/*(U)*/
};


static const uint16_t unicode_list_1[] = {
    0x0041,	/*(A)*/
    0x0043,	/*(C)*/
    0x0045,	/*(E)*/
    0x0047,	/*(G)*/
    0x004d,	/*(M)*/
    0x004e,	/*(N)*/
    0x0050,	/*(P)*/
    0x0052,	/*(R)*/
    0x0054,	/*(T)*/
    0x0055,	/*(U)*/
    0x0000,    /*End indicator*/
};


static const lv_font_fmt_txt_cmap_t cmaps[] = {
    {
        .range_start = 0x0041,
        .range_length = 0xf2db,
        .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY,
        .glyph_id_start = 0,
        .unicode_list = unicode_list_1,
        .glyph_id_ofs_list = NULL,
        .list_length = 10,
    }
};

static lv_font_fmt_txt_glyph_cache_t glyph_cache = {
    .last_letter = 0x0055,
    .last_glyph_id = 9,
};

static lv_font_fmt_txt_dsc_t font_dsc = {
    .glyph_bitmap = glyph_bitmap,
    .glyph_dsc = glyph_dsc,
    .cmaps = cmaps,
    .cmap_num = 1,
    .bpp = 4,

    .kern_scale = 0,
    .kern_dsc = NULL,
    .kern_classes = 0,

    .cache = &glyph_cache
};


static int binsearch(const uint16_t *sortedSeq, int seqLength, uint16_t keyData) {
    int low = 0, mid, high = seqLength - 1;
    while (low <= high) {
        mid = (low + high)>>1;//右移1位等于是/2，奇数，无论奇偶，有个值就行
        if (keyData < sortedSeq[mid]) {
            high = mid - 1;//是mid-1，因为mid已经比较过了
        }
        else if (keyData > sortedSeq[mid]) {
            low = mid + 1;
        }
        else {
            return mid;
        }
    }
    return -1;
}


static const uint8_t * __user_font_get_bitmap(const lv_font_t * font, uint32_t unicode_letter) {
    lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;

    if( unicode_letter<fdsc->cmaps[0].range_start || unicode_letter>fdsc->cmaps[0].range_length ) return false;

    int i;
    if( unicode_letter==fdsc->cache->last_letter ){
        i = fdsc->cache->last_glyph_id;
    }
    else{
        i = binsearch(fdsc->cmaps[0].unicode_list, fdsc->cmaps[0].list_length, unicode_letter);
    }
    if( i != -1 ) {
        const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[i];
        fdsc->cache->last_glyph_id = i;
        fdsc->cache->last_letter = unicode_letter;
        return &fdsc->glyph_bitmap[gdsc->bitmap_index];
    }
    return NULL;
}


static bool __user_font_get_glyph_dsc(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, uint32_t unicode_letter_next) {
    lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;

    if( unicode_letter<fdsc->cmaps[0].range_start || unicode_letter>fdsc->cmaps[0].range_length ) return false;

    int i;
    if( unicode_letter==fdsc->cache->last_letter ){
        i = fdsc->cache->last_glyph_id;
    }
    else{
        i = binsearch(fdsc->cmaps[0].unicode_list, fdsc->cmaps[0].list_length, unicode_letter);
    }
    if( i != -1 ) {
        const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[i];
        fdsc->cache->last_glyph_id = i;
        fdsc->cache->last_letter = unicode_letter;
        dsc_out->adv_w = gdsc->adv_w;
        dsc_out->box_h = gdsc->box_h;
        dsc_out->box_w = gdsc->box_w;
        dsc_out->ofs_x = gdsc->ofs_x;
        dsc_out->ofs_y = gdsc->ofs_y;
        dsc_out->bpp   = fdsc->bpp;
        return true;
    }
    return false;
}


//微软雅黑,Regular,18
//字模高度：31
//内部字体
//使用排序和二分查表
lv_font_t lv_font_ibmplex_18 = {
    .dsc = &font_dsc,
    .get_glyph_bitmap = __user_font_get_bitmap,
    .get_glyph_dsc = __user_font_get_glyph_dsc,
    .line_height = 31,
    .base_line = 0,
};

